//
//  UIButton+Category.h
//  OCDemo
//
//  Created by zhumuzhi on 2022/1/5.
//

typedef void(^CountdownEndBlock)(void);

NS_ASSUME_NONNULL_BEGIN

@interface UIButton (Category)

#pragma mark - 设置背景颜色
/**
 *  设置背景颜色
 *
 *  @param backgroundColor 设置的颜色
 *  @param state 按钮状态
 */
- (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state;


#pragma mark - 设置倒计时时间（通用）
/**
 *  设置倒计时时间
 *
 *  @param seconds 设置的时间
 */
- (void)startCountdown:(NSUInteger)seconds;

#pragma mark - 设置倒计时时间（通用）
/**
 *  设置倒计时时间
 *
 *  @param seconds 设置的时间
 *  @param endBlock 倒计时结束block
 */
- (void)startCountdown:(NSUInteger)seconds endBlock:(CountdownEndBlock)endBlock;

#pragma mark - Runtime解决UIButton重复点击问题

/**
 *  点击事件的事件间隔
 */
@property (nonatomic, assign) NSTimeInterval acceptEventInterval;

#pragma mark - 设置渐变背景颜色

/**
 *  根据给定的颜色，设置按钮的颜色
 *  @param btnSize  这里要求手动设置下生成图片的大小，防止coder使用第三方layout,没有设置大小
 *  @param clrs     渐变颜色的数组
 *  @param percent  渐变颜色的占比数组
 *  @param type     渐变色的类型
 */
- (UIButton *)gradientButtonWithSize:(CGSize)btnSize colorArray:(NSArray *)clrs percentageArray:(NSArray *)percent gradientType:(GradientType)type;


@end

NS_ASSUME_NONNULL_END
